package org.hbkj.springbootmybatis.dao;

import org.apache.ibatis.annotations.Param;
import org.hbkj.springbootmybatis.entity.GoodsDo;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface GoodsDao {
    int insert(GoodsDo goodsDo);
    int delete(Long id);
    int update(GoodsDo goodsDo);
    GoodsDo selectOne(Long id);
    List<GoodsDo> selectAll();

    // 新增按剩余量查询方法（原已有逻辑，若之前未在 Dao 定义需补充）
    List<GoodsDo> selectByRemaining(Integer remaining);

    // 优化：使用商品ID和购买数量作为参数
    int deductStock(@Param("goodsId") Long goodsId,
                    @Param("purchaseCount") Integer purchaseCount);

    // 新增方法（处理 Integer 类型，用于 BuysService）
    int deductStockByIntegerId(Integer goodsId, Integer quantity);
}